package com.zmn.plat.dubbo.interfaces.orderconfig.serviceaudit;

import java.util.List;

import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Positive;

import com.zmn.common.dto.VtDTO;
import com.zmn.common.dto2.ResponseDTO;
import com.zmn.plat.common.dto.orderconfig.serviceaudit.OrderServiceAuditReasonDIO;
import com.zmn.plat.common.dto.orderconfig.serviceaudit.OrderServiceAuditReasonDRO;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;

/**
 * @author tanbiao
 * @description
 * @since 2019/10/21 18:17
 * @modifier
 **/
@Api(value = "审核失败缘由服务", tags = {"审核失败缘由"})
public interface OrderServiceAuditReasonListRemoteService {
    /**
     * 描述: 根据主键查询审核失败缘由
     *
     * @param id
     * @return OrderCancelCategoryDRO
     * @auther: tanbiao
     * @since: 2020/09/17 11:11
     */
    @ApiOperation(value = "根据主键查询审核失败缘由", response = ResponseDTO.class, notes = "", tags = {"审核失败缘由"})
    ResponseDTO<OrderServiceAuditReasonDRO> getById(@NotNull(message = "主键id不能为空") @Positive(message = "主键id必须为大于0的正整数") @ApiParam(value = "主键id", required = true) Integer id);

    /**
     * 描述: 根据条件查询审核失败缘由
     *
     * @param orderCancelCategoryDIO
     * @return OrderCancelCategoryDRO
     * @auther: tanbiao
     * @since: 2020/09/17 11:11
     */
    @ApiOperation(value = "根据条件查询审核失败缘由", response = ResponseDTO.class, notes = "", tags = {"审核失败缘由"})
    ResponseDTO<List<OrderServiceAuditReasonDRO>> listByQuery(@NotNull(message = "入参不能为空") @Valid @ApiParam(value = "查询条件", required = true) OrderServiceAuditReasonDIO orderCancelCategoryDIO);

    /**
     * 描述：根据状态取得审核失败缘由
     *
     * @param status
     *            状态
     * @return ResponseDTO<List>
     * @auther: tanbiao
     * @since: 2020/09/17 11:11
     */
    @ApiOperation(value = "根据状态取得审核失败缘由", response = ResponseDTO.class, notes = "", tags = {"状态", "审核失败缘由"})
    ResponseDTO<List<VtDTO>> listVtByStatus(@NotNull(message = "状态不能为空") @Positive(message = "状态必须为大于0的正整数") @ApiParam(value = "状态", required = true) Integer status);
}
